<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>

        // 1. 设置Symbol作为属性
        // console.log(Symbol('haha') == Symbol('haha'));
        // 创建一个相等的字段(相对较少)
        // console.log(Symbol.for('heihei') === Symbol.for('heihei'));
        console.log(Symbol('100'));  // 一个橙色的数据，代表唯一的

        // 2. Symbol 作为属性
        const sId = Symbol('guigu');
        const obj = {
            uname: '迪丽热巴',
            ['age']: 29,
            [sId]: 'hello world.',
            [Symbol('guigu')]: '你好世界.',
            [Symbol.iterator]: function () {
                console.log(100);
            }
        }

        // console.log(obj);

        // 3. Symbol 的属性，无法被遍历
        // for (var key in obj) {
        //     console.log(key);
        // }

        // 4. 取出 Symbol 属性对应的值
        // console.log(obj.guigu);             // undefined
        // console.log(obj[Symbol.guigu]);     // undefined
        // console.log(obj[Symbol('guigu')]);  // undefined （相当于又创建了一次数据）
        // console.log(obj[sId]);

        // 查看对象所有的Symbol属性 - 返回一个数组, 保存的是所有的symbol属性
        const attr = Object.getOwnPropertySymbols(obj)
        console.log(attr);
        console.log(obj[attr[0]]);
        console.log(obj[attr[1]]);
        obj[attr[2]]();


    </script>
</body>

</html>